/*
 * Wire
 * Copyright (C) 2018 Wire Swiss GmbH
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see http://www.gnu.org/licenses/.
 *
 */

// mixins
.seekbar-thumb-style() {
  .circle(12px);
  border: none;
  appearance: none;
  background-color: var(--accent-color);
  opacity: 0;
  transition: opacity var(--animation-timing-slow) ease-in-out;
}

.thumb(@rules) {
  &::-moz-range-thumb {
    @rules();
  }
  &::-webkit-slider-thumb {
    @rules();
  }
  &::-ms-thumb {
    @rules();
  }
}

.seek-bar {
  display: flex;
  width: 100%;

  input {
    --seek-bar-progress: 0%;
    width: 100%;
    height: 2px;
    border-radius: 1px;
    appearance: none;
    background-image: linear-gradient(
      to right,
      currentColor var(--seek-bar-progress),
      rgba(255, 255, 255, 0.4) var(--seek-bar-progress)
    );
    color: var(--accent-color);
    cursor: pointer;
    outline: none;

    &.seek-bar--dark {
      background-image: linear-gradient(
        to right,
        currentColor var(--seek-bar-progress),
        rgba(141, 152, 159, 0.24) var(--seek-bar-progress)
      );
    }

    .thumb({
      .seekbar-thumb-style;
    });

    &.show-seek-bar-thumb {
      .thumb({
        opacity: 1;
      });
    }

    &::-moz-range-track {
      border: none;
      background-color: fade(#fff, 40%);
    }

    &::-moz-focus-outer {
      border: 0;
    } // remove dotted outline

    &:focus-visible {
      .focus-outline;
      .focus-offset;
      .focus-border-radius;
    }
  }
}
